package PrefixAnd;

import java.util.HashMap;
import java.util.Map;

public class findMaxLength {
    public int findMaxLength(int[] nums) {
        int n=nums.length;
        Map<Integer,Integer> hash=new HashMap<>();
        hash.put(0, -1);
        int sum=0;
        int max=0;
        for(int i=0;i<n;i++){
            if(nums[i]==0) sum+=-1;
            else sum+=1;
            if(!hash.containsKey(sum)){
                hash.put(sum,i);
            }else{
                max=Math.max(max,i-hash.get(sum));
            }
        }
        return max;

    }
}
